package com.wtwd.campus.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wtwd.campus.common.RespEntity;
import com.wtwd.campus.entity.*;
import jdk.nashorn.internal.codegen.CompilerConstants;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public interface LogService {
    //获取通话记录
    Map<String,Object> getCallRecord(QueryCallRecordDataVo data);

    //获取监听记录
    Map<String,Object> getMonitorRecord(QueryMonitorRecordDataVo data);

    //新增操作记录
    Integer addAuditLog(AuditLog auditLog);

    //获取用户的操作模块
    List<String>  getOperationModule(String orgCode);

    //条件查询获取操作记录列表
    Map<String,Object> getOperationRecordList(QueryOperationRecordVo data);

    //根据学校id获取学校组织编码
    String getOrgCodeBySchoolId(Integer schoolId);

    //根据学生id获取组织编码和学生姓名
    Map<String,Object> getOrgCodeAndStuNameByStuId(Integer stuId);

    //新增一笔通话记录
    Integer addCallRecord(CallRecord record);

    //新增一笔监听记录
    Integer addMonitorRecord(MonitorRecord record);

    Map<String, Object> getCommandRecordList(Page<Object> page  ,HashMap<String, Object> searchMap,String orgCode);

    Map<String, Object> getAlarmRecordList(String orgCode, HashMap<String, Object> searchMap, Page<Object> page);

    Map<String, Object> getLoginLogByCondition(String orgCode, String name, Long startTime, Long endTime, Page<Object> page);

    //根据学校id获取学校信息
    School getSchoolById(Integer schoolId);

    //根据年级id获取学校信息
    Map<String ,Object> getSchoolAndGradeByGradeId(Integer gradeId);

    //根据班级id获取班级信息以及所属学校的组织code
    Map<String,Object> getClassMessAndSchoolCodeById(Integer classId);

    //根据教师id拿到教师名称和所属学校组织code
    Map<String,Object> getTeacherNameAndSchoolCodeById(Integer teaId);

    //根据设备id获取设备的sos列表
    List<DeviceSOSList> getSOSListByDeviceId(Integer deviceId);

    //修改SOS记录的状态
    Integer updateSosListStatus(Integer id ,Integer status,String commandNumber);

    //添加一笔SOS号码记录
    Integer insertSosNumberList( DeviceSOSList data);

    //获取一笔sos号码记录根据id
    DeviceSOSList getDeviceSOSMessById(Integer id);

    //根据学生id获取通话记录
    List<Map<String,Object>> getCallRecordByStuId(Integer stuId,Integer num);

    //根据设备id获取通话记录
    List<Map<String,Object>> getCallRecordByDeviceId(Integer deviceId);

    //根据学生id获取该学生存在的所有告警类型
    List<Map<String,Object>> getWarningTypeByStuId(Integer stuId);

    //根据学生id获取该学生存在的所有告警类型
    List<Map<String,Object>> getWarningListByStuIdAndType(Integer stuId,Integer type,Integer num);

    //根据设备id获取该设备存在的所有告警类型
    List<Map<String,Object>> getWarningTypeByDeviceId(Integer deviceId);

    //根据设备id获取该学生存在的所有告警类型
    List<Map<String,Object>> getWarningListByDeviceIdAndType(Integer deviceId,Integer type);

    //修改SOS记录的状态和数据
    Integer updateSosListData(SOSListVO data,Integer status,String commandNumber);

    //根据类型和时间查询记录笔数
    int selectCountByTypeAndTime(Integer deviceId,Integer type,Long start);


}
